﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel;

namespace TicketsPhone.Web.Utils
{
    /// <summary>
    /// Atributo para la validacion que sirve para comparar dos propiedades de un objeto. Atributo a nivel de clase
    /// </summary>
    public class ComparacionAttribute : ValidationAttribute
    {
        public string Propiedad1 { get; set; }
        public string Propiedad2 { get; set; }

        public override bool IsValid(object value)
        {
            PropertyDescriptorCollection properties = TypeDescriptor.GetProperties(value);
            object valor1 = properties.Find(Propiedad1, true).GetValue(value);
            object valor2 = properties.Find(Propiedad2, true).GetValue(value);
            return valor1.Equals(valor2);
        }
    }
}